def s():
n,k = [int(i)for i in input().split()]
a = [int(i)for i in input().split()];d={}
for i in a:
p = i%k
if p not in d:d[p] = [i]
else:d[p] += [i]
v,ans = 0,0
for e in d:
l = sorted(d[e])
if len(l)%2 == 0:
for i in range(1,len(l),2):
ans += (l[i] - l[i-1])//k
else:
v += 1
if v>n%2:return -1
le = len(l)
p = [0]*le
for i in range(2,le,2):
p[i] = (l[i] - l[i-1])//k + p[i-2]
ma,be,q = p[-1],0,float("inf")
for i in range(le):
if i%2:be += (l[i]-l[i-1])//k
else:q = min(q,be + ma - p[i])
ans += q
return ans
for _ in range(int(input())):
print(s())
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |